#include"RingQueue.hpp"
#include"thread.hpp"
#include<pthread.h>
#include<iostream>

int qqq=10;

void* consumor(void* args)
{
    //消费
     kzz::RingQueeu<int>* rq=static_cast< kzz::RingQueeu<int>*>(args);
     
    int p=rq->Pop();
    std::cout<<"得到一个任务"<<p<<std::endl;
    return nullptr;

}
void* productor(void* args)
{
    //生产
    kzz::RingQueeu<int>* rq=static_cast< kzz::RingQueeu<int>*>(args);
    std::cout<<"生产了一个任务"<<std::endl;
    rq->Equeue(5);
    //qqq--;
    return nullptr;


}


int main()
{

    kzz::RingQueeu<int> rq;
    std::vector<kzz::Thread> vt;
    pthread_t ct1,ct2,ct3,pt1,pt2;
    pthread_create(&ct1,nullptr,consumor,(void*)&rq);
    pthread_create(&ct2,nullptr,consumor,(void*)&rq);
    pthread_create(&ct3,nullptr,consumor,(void*)&rq);
    pthread_create(&pt1,nullptr,productor,(void*)&rq);
    pthread_create(&pt1,nullptr,productor,(void*)&rq);
    

    return 0;
}